Machine learning approach for query resolution via a dynamic determination and allocation of expert resources

ABSTRACT

The systems and methods described herein relate to mapping and identifying expert resources. The systems and methods described herein may provide a set of technologies, that work together as one solution, to effectively and efficiently resolve user questions. A cognitive engine may autonomously learn which experts have the knowledge to quickly solve a question or whether a previous question is similar enough to provide a solution instantly. Using machine learning, a know-how map may be created, linking all of the users of the system with their areas of expertise. Expert resources among the users may be mapped by determining connections between topics (and their corresponding tags) and calculating an expert score related to each topic for each user. These connections and expert scores are subsequently used during expert routing for each new question, to find those users with the expertise to give the best possible solution.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of pending U.S. patent applicationSer. No. 16/291,275, filed Mar. 4, 2019, entitled “MACHINE LEARNINGAPPROACH FOR QUERY RESOLUTION VIA A DYNAMIC DETERMINATION AND ALLOCATIONOF EXPERT RESOURCES”, which is a continuation of U.S. patent applicationSer. No. 15/910,372, filed Mar. 2, 2018, entitled “MACHINE LEARNINGAPPROACH FOR QUERY RESOLUTION VIA A DYNAMIC DETERMINATION AND ALLOCATIONOF EXPERT RESOURCES” (which issued as U.S. Pat. No. 10,223,646 on Mar.5, 2019), which are hereby incorporated herein by reference in theirentirety.

FIELD OF THE INVENTION

The systems and methods described herein relate to a machinelearning-based approach for resolving user queries via a dynamicdetermination and allocation of expert resources.

BACKGROUND OF THE INVENTION

Conventional approaches to mapping and identifying expert resourcessuffers from one or more drawbacks. For example, in large organizations,the number of users and volume of content can make mapping andidentifying expert resources problematic. Models of an organization'sexpert resources may be unable to factor in all of the available dataand differentiate between users with a similar background or level ofexpertise. Maintaining an up-to-date model is also often difficult aspeople constantly acquire new knowledge and shift focus betweendifferent specializations. These problems are further exacerbated inmulti-national organizations where the use of different languages makesmapping and identifying expert resources across different regionschallenging. Furthermore, even when the ideal resource is identified,the identified individual may not be available or incentivized torespond. In some cases, an answer to a question already exists withinthe enterprise, but the existence of the question and answer is notreadily known to the user. These and other drawbacks exist withconventional solutions.

SUMMARY OF THE INVENTION

The systems and methods described herein describe a comprehensiveknowledge management technology tool to address these and other issues.According to one aspect of the invention, the system may provide a setof technologies, that work together as one solution, to effectively andefficiently resolve user queries. The cognitive engine autonomouslylearns which experts have the knowledge to quickly solve a question orwhether a previous question is similar enough to provide a solutioninstantly. The system uses predictive analytics to find thoseindividuals who can best answer a particular question at the time aquestion is generated as well as using autocomplete suggestions andautomatically searching for similar previously stored questions whilethe user is inputting a question. In this way, if an answer to thequestion exists in the system, the system can provide that informationto the user. If it is a new question, the system can make a real-time,dynamic determination of who can be respond to the question at thattime.

According to one aspect of the invention, the system uses machinelearning to create a know-how map, linking all of its users with theirareas of expertise. The system may use unsupervised learning techniques,which are automated and require no human effort. The learning algorithmsautomatically adapt themselves to the different topics and use-casesthat occur in different organizations. In this way, the system creates adynamically changing knowledge and user map.

The expert resources of an organization or group of users may be mappedby determining connections between topics (i.e., tags) and calculatingan expert score related to each topic for each user. These connectionsare subsequently used during the expert routing for each new question,to find those users with the expertise to give the best solutions. Invarious implementations, the expert resources may be mapped based on arecord of prior interactions with the system by each user. From therecord of prior interactions with the system, indications of interestand expertise in one or more topics may be identified and used tocalculate an expert score for each user in each topic. For example, anindication of interest in a topic may comprise viewing prior questionsreceived by the system related to the topic or performing a searchrelated to the topic, and an indication of expertise in a topic maycomprise a contribution related to that topic (e.g., providingquestions, solutions, or comments related to that topic) or feedbackreceived from other users regarding content the user contributed relatedto that topic.

A user's expert score related to a given topic may be calculated basedon the indications of interest and expertise for that user related tothat topic. The systems and methods described herein may utilize amulti-factor test to calculate expert scores that applies weights toindividual indications of interest and expertise based on the type ofinteraction and the time of the interaction for each of the indicationsof interest and expertise. For example, indications of expertise in agiven topic may be weighted more heavily than indications of interest inthat topic when calculating an expert score for that topic. In someimplementations, a user's level of interest in a topic may be determinedbased on identified indications of interest and used to calculate anexpert score for that user related to that topic. In variousimplementations, the record of prior interactions with the system may bemonitored and used to automatically update the expert scores for eachuser related to each topic in real-time. In this way, users interactwith the know-how map simply by using the application. The resultingnetwork of questions, tags and users, which are all connected with eachother, provides a self-learning map of the know-how of the organizationor group of users.

In various implementations, the expert score for each user across topicsmay be bounded. In other words, the total knowledge for each user may bebounded. As the user acquires knowledge about new or different topics,the user's knowledge about prior topics may be pushed further back inthe user's mind. In some implementations, the expert score for the usersacross the system may be bounded. In other words, the total knowledgeamongst all users of the system about a certain topic is bounded. Bybounding the total knowledge of the users of the system (i.e., theexpert scores across the users of the system), a user posing a questionto the system may be certain that they are matched with one of a portionof the users of the system that qualify as experts in that topic (i.e.,one of the most knowledgeable of the users of the system for thattopic). Accordingly, a user's expert score for a given topic isnormalized based on the expert scores for each of the other users forthat topic and the user's own expert scores for other topics.

Each topic may correspond to one or more tags. The tags may eachcomprise a keyword or phrase that identifies the corresponding topic.Each question that is received by the system may be associated with aset of tags. The set of tags may indicate one or more topics related tothe question. The tags may be automatically determined and/or determinedbased on user input indicating one or more tags to associate with thequestion. In some implementations, tags to associate with a question maybe automatically determined based on keywords found in the questionitself, one or more similar questions previously submitted, and/orconnections mapped between one or more tags identified for the questionand related tags.

In various implementations, one or more expert users to route thequestion may be identified based on the set of tags associated with thequestion and the expert scores for each user related to the set of tags.In doing so, users may be identified whose expertise best matches theparticular combination of tags associated with the question. In someimplementations, users identified as an expert user to route a questionmay be identified from a set of users based on the workload of each ofthe set of users (i.e., load balancing). By analyzing the activity ofdifferent users by time and day of the week, we can alert those expertsfor a new question who are likely to be available to provide a solutionwithout delay. In doing so, the systems and methods described herein maymake sure that the highest scoring experts are not demotivated byreceiving too many questions. In some implementations, the useridentified as the expert user to route the question may be identifiedfrom a set of users based on the language proficiencies of each of theset of users. The user identified as the expert user may be providedwith the question and prompted to provide a solution.

Combining all of these factors, the systems and method described hereinmay obtain an ordered list of users identified as expert users. Theordered list of users may represent the top experts (i.e., the userswith the highest expert score) for a given question at a given time. Oneor more of the identified expert users may be alerted and provided withthe question. For example, in some implementations, between four and tenexpert users identified for a question may be provided with the questionto maximize the likelihood of getting a quality solution or answer tothe question as soon as possible.

In various implementations, knowledge of the users identified andprovided with the question may be unknown to other users—even to theuser that asked the question. In other words, there is no broadcasting.Users may only be notified about questions for which they are identifiedas an expert user to route the question (i.e., questions for which theuser is identified as a top expert). This limits the number ofnotifications that every user receives, and keeps the experts motivatedto contribute their knowledge when it is really needed. To achieveoptimal results, users may be notified of questions, solutions, and/orcomments through user-defined communication channels. That is, in someimplementations, users may only receive notifications throughcommunication channels of their choice. For example, user profileinformation may indicate preferred means of communication for each user.

Once a solution is provided by an expert user, one or more other users(e.g., the user that asked the question) may be prompted for feedbackregarding the solution. Feedback received related to the solution may beutilized to update the expert scores for the expert user that providedthe solution. In some implementations, the set of tags associated withthe question and/or the feedback provided for the solution may be usedto update the connections between the plurality of tags used to map theexpertise of the organization or group of users.

Another aspect of the invention, tied to the machine learning anddynamic allocation of experts, is an accuracy algorithm. The systems andmethod described herein may measure the performance of the algorithmusing one or more different metrics. For example, a key indicator maycomprise the accuracy of the expert routing. This is the percentage ofquestions that are solved by one of the experts who were identified bythe expert search algorithm. The quality of solutions can be measured byfeedback related to the corresponding solution.

In some implementations, gamification may be used to encourage and/orincentivize users to interact with the system (e.g., ask questions,provide solutions, leave comments, or provide feedback). For example, auser's activity may be tracked and they may be awarded points orotherwise rewarded for their activity. Points may be allocateddifferently for different interactions with the system. Based on thepoints allocated to a user, a user score level may be determined. Theuser may level up from one user score level to the next as a result ofadditional interactions with the system. In some implementations, user'smay be encouraged to compete with one another by posting a list of theusers ranking the users based on a number of points associated with eachuser and/or a user score level for each user.

These and other objects, features, and characteristics of the systemand/or method disclosed herein, as well as the methods of operation andfunctions of the related elements of structure and the combinationthereof, will become more apparent upon consideration of the followingdescription and the appended claims with reference to the accompanyingdrawings, all of which form a part of this specification, wherein likereference numerals designate corresponding parts in the various figures.It is to be expressly understood, however, that the drawings are for thepurpose of illustration and description only and are not intended as adefinition of the limits of the invention. As used in the specificationand in the claims, the singular form of “a”, “an”, and “the” includeplural referents unless the context clearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of an overview of a system configured tomap expert resources within an organization or group of users andidentify expert resources to route questions based on the mapped expertresources, in accordance with one or more implementations.

FIG. 2 illustrates an example of a block diagram of an expertise mappingcomponent configured to map the expertise of an organization or group ofusers, in accordance with one or more implementations.

FIG. 3 illustrates an example of how a plurality of topics (or tags) maybe connected, in accordance with one or more implementations of theinvention.

FIG. 4 illustrates an example of how expert scores for users of thesystem may be affected for a given topic over time, in accordance withone or more implementations of the invention.

FIG. 5 illustrates an example of how similar questions may be identifieddespite diversity in textual formation between the questions, inaccordance with one or more implementations of the invention.

FIG. 6 illustrates an example of the connections that may be determinedto identify the best user to route a question, in accordance with one ormore implementations of the invention.

FIG. 7 illustrates an example of a process of mapping expert resourceswithin an organization or group of users, in accordance with one or moreimplementations.

FIG. 8 illustrates an example of a process of identifying expertresources to route questions based on the mapped expert resources, inaccordance with one or more implementations.

DETAILED DESCRIPTION OF THE INVENTION

It will be appreciated by those having skill in the art that theimplementations described herein may be practiced without these specificdetails or with an equivalent arrangement. In other instances,well-known structures and devices are shown in block diagram form inorder to avoid unnecessarily obscuring the implementations of theinvention.

Overview of System Architecture

FIG. 1 illustrates an overview of a system 100 configured to map expertresources within an organization or group of users and identify expertresources to route questions based on the mapped expert resources, inaccordance with one or more implementations. The system 100 may includedatabases 104, a computer system 110, one or more user device(s) 130,and/or other components. The system 100 may interface with one or moreexternal entities (e.g., one or more user device(s) 130) via a network102. The computer system 110 may include one or more physicalprocessor(s) 112, instructions 114, a knowledge database 122, and/or oneor more one or more other components.

The one or more physical processor(s) 112 may be configured to provideinformation processing capabilities in system 100. As such, theprocessor(s) 110 may comprise one or more of a digital processor, ananalog processor, a digital circuit designed to process information, acentral processing unit, a graphics processing unit, a microcontroller,an analog circuit designed to process information, a state machine,and/or other mechanisms for electronically processing information.

Processor(s) 112 may be configured to execute one or more computerreadable instructions 114. Computer readable instructions 114 mayinclude one or more computer program components. For example, computerreadable instructions 114 may include one or more of an expertisemapping component 116, a user interface component 118, a questionmanagement component 120, and/or other computer program components. Asused herein, for convenience, the various computer readable instructions114 will be described as performing an operation, when, in fact, thevarious instructions program the processor(s) 112 (and therefore system100) to perform the operation.

Expertise mapping component 116 may describe and represent thefunctionality of a cognitive engine that autonomously maps the expertresources within an organization or group of users. Expertise mappingcomponent 116 may be configured to continuously learn and interface withquestion management component 120 to identify which experts have theknowledge to quickly solve a question or whether a previous question issimilar enough to provide a solution instantly. Using the mappedresources, system 100 may be configured to utilize predictive analyticsto find those individuals who can best answer a particular question atthe time a question is generated as well as using autocompletesuggestions and automatically searching for similar previously storedquestions while the user is inputting a question. In this way, if ananswer to the question exists in the system, the system can provide thatinformation to the user. If it is a new question, the system can make areal-time, dynamic determination of who can be respond to the questionat that time.

Expertise mapping component 116 may include computer programinstructions, which specifically program the processor(s) 112 to map theexpertise of an organization or group of users. The expertise of theorganization or group of users may comprise the collection of humanresources with a demonstrated and/or predicted expertise in a pluralityof topics and sub-topics. The expertise mapping component 116 is furtherdescribed in connection with FIG. 2.

FIG. 2 illustrates a block diagram of expertise mapping component 116configured to map the expertise of an organization or group of users, inaccordance with one or more implementations. The various components ofexpertise mapping component 116 depict various sets of functions thatmay be implemented by computer program instructions of expertise mappingcomponent 116. Expertise mapping component 116 may be configured toprogram computer system 110 to map the expertise of an organization orgroup of users using all or a portion of the components of expertisemapping component 116 illustrated in FIG. 2.

Expertise mapping component 116 may include a profile managementcomponent 202, an interest identification component 204, an expertiseidentification component 206, a topic mapping component 208, anexpertise scoring component 210, a language identification component212, a gamification component 214, and/or other components. One or moreof profile management component 202, interest identification component204, expertise identification component 206, topic mapping component208, expertise scoring component 210, language identification component212, and gamification component 214 may be coupled to one another or tocomponents not shown in FIG. 2.

Profile management component 202 may be configured to manage userprofiles for users of system 100. The users of system 100 may comprise aset of users. For example, the users of system 100 may comprise apredefined set of users with access to system 100. In someimplementations, the users of system 100 may comprise individual membersof an organization or predefined group of users. In someimplementations, profile management component 202 may be configure tomanage the on-boarding of user to system 100. For example, profilemanagement component 202 may be configured to create a profile for oneor more users. A profile of a user may include user profile information.User profile information may comprise user identifying information(e.g., name, position, location, contact information, a useridentification number, and/or other user identifying information), oneor more expert scores for the user each related to one or more of aplurality of topics, the language proficiencies of the user, gameinformation for the user (such as a level, a number of points, and/orother game information), communication preference information indicatingpreferred means of communication for each user, and/or other userprofile information. In various implementations, profile managementcomponent 202 may be configured to interface with various components ofsystem 100 in order to obtain and/or provide information related to oneor more users. In some implementations, profile management component 202may be configured to obtain information from knowledge database 122 tocreate, update, or otherwise manage user profiles.

In some implementations, profile management component 202 may beconfigured to identify and/or modify a user level for each user. Forexample, user levels may comprise employee users, management users,administrative users, and/or other user types. In some implementations,only one or more of the user levels may invite other users (i.e., grantother users access to system 100). For example, in some implementations,only management users and/or administrative users may invite other usersto system 100. In some implementations, an employee user may comprise atypical user of system 100. An employee user may be able to viewquestions, solutions, and comments submitted to system 100, submitquestions to system 100, and/or otherwise interact with system 100. Forexample, in some implementations, an employee user may be permitted toaccess, or have their access limited to, one or more functions of aquestion-answer module, one or more optional standard extensions, aknow-how profile, account settings, and/or other aspects of system 100.

An employee user may utilize a question-answer module to (i) ask and/orresolve questions; (ii) add file attachments, links and videos toquestions and solutions; (iii) perform full text searches for existingquestions and solutions; (iv) receive notifications (e.g., notificationsthat the user has been identified as an expert user and routed one ormore questions, notifications that an question has been answered, and/orother notifications); (v) accept or reject questions; (vi) providecommentary related to questions and/or solutions; (vii) provide feedbackrelated to one or more solutions (e.g., on a scale of 1-5 stars); (viii)review questions previously asked and/or answered; (iv) recommend usersas expert users to answer questions; and/or otherwise interact withsystem 100 related to one or more questions or solutions.

Standard extensions may comprise the ability to view usage terms andconditions that users must accept, report questions as inappropriate,access an email form for feedback and support queries, answer a timesaving survey, access gamification features, and/or one or more featuresof other extensions. The know-how profile may comprise a graphicvisualization of one's own areas of expertise, an overview of one's ownnetwork activity, and/or enable a user to search for other users basedon their know-how profile. Access to account settings may enable anemployee user to view or modify personal information, email/notificationsettings, language settings for emails and user interface, languagefiltering for questions, and/or other account settings.

In some implementations, a management user may be permitted to accessone or more functions accessible by employee users and one or moreadditional functions. For example, a management user may be permitted toaccess, or have their access limited to, one or more of a know-howwheel, expert searches that show the top experts for one or more topics(e.g., the top 20 experts for a topic), interaction analytics for one ormore users of system 100 (e.g., time to solution, percentage of solvedquestions, average rating, number of questions answered, solved, orcommented on, and/or other interaction statistics), and/or other aspectof system 100. In some implementations, management users may have accessto “tag clouds,” an indication of the user with the best expert scorefor a topic, “white spots,” and/or other information.

In some implementations, an administrative user may be permitted toaccess one or more functions accessible by employee users, managementusers, and one or more additional functions. For example, administrativeusers may identify other administrative users, add, modify, or deleteuser data, import data, export data, access questions (modify, remove,etc.), process and deactivate content (questions, solutions,commentary), add pictures to keywords, upgrade comments to solutions,view analytics, export analytics, and/or one or more additionalfunctions.

Interest identification component 204 may be configured to identifyindications of interest in one or more of a plurality of topics for eachof the set of users. For example, a user's interest in a particulartopic may be determined based on content the user looks at or searchesfor, without necessarily contributing to (e.g., providing solutions toquestions related to the topic), related to that topic. In variousimplementations, an indication of interest in a topic may comprise oneor more views of prior questions received by the system related to thetopic, one or more searches related to the topic, and/or one or moreother prior interactions of a user indicating an interest in a topic.

In various implementations, interest identification component 204 may beconfigured to access a record of prior interactions with the system foreach user to identify indications of interest in one or more of aplurality of topics for each user. For example, interest identificationcomponent 204 may be configured to identify indications of interest inone or more of a plurality of topics for each of the set of users basedon a record of prior interactions by each of the users with system 100stored in knowledge database 122. In various implementations, interestidentification component 204 may be configured to identify indicationsof interest in a given topic based on a viewing history for each userindicating one or more views of prior questions, solutions, and/orcomments related to the topic and/or a search history indicating one ormore searches related to the topic. In some implementations, the searchhistory may comprise an indication of one or more searches within thesystem or a record of searches accessible by the system.

In various implementations, interest identification component 204 may beconfigured to identify indications of interest from a record of priorinteractions by identifying one or more keywords, one or more tags,and/or one or more topics within the record of prior interactions. Insome implementations, interest identification component 204 may beconfigured to utilize a map of topics and tags to identify an indicationof an interest in a given topic from a prior interaction based on one ormore tags identified for the prior interaction. In other words, interestidentification component 204 may be configured to determine that a priorinteraction is an indication of an interest in a given topic because oneor more tags identified in the prior interaction correspond with thegiven topic. In various implementations, interest identificationcomponent 204 may be configured to monitor a record of priorinteractions and identify indications of interest in real-time.

In various implementations, interest identification component 204 may beconfigured to provide indications of interest in one or more topicsidentified for each user to profile management component 202 and/orexpertise scoring component 210. In some implementations, theindications of interest in one or more topics provided may include adate and/or time associated with the indication of interest. Profilemanagement component 202 may be configured to store the receivedindications of interest in one or more topics identified for each userin a user profile for each user. Expertise scoring component 210 may beconfigured to determine a level of interest in the one or more topicsfor each user and calculate an expert score for each of the one or moretopics for each user based on the received indications of interest inthe one or more topics.

Expertise identification component 206 may be configured to identifyindications of expertise in one or more of a plurality of topics foreach of the set of users. For example, a user's expertise in aparticular topic may be determined based on content the user hascontributed related to that topic (such as questions, solutions toquestions, or comments related to questions or solutions the user hasprovided related to that topic), and the feedback the user receives forthe content they have contributed (e.g., feedback from another user thatprovided a question to the system for a solution the user provided forthat question). As such, in various implementations, an indication ofexpertise in a topic may comprise contributions related to that topic(e.g., questions, solutions, or comments related to that topic),feedback from other users of the content the user contributed related tothat topic, and/or one or more other prior interactions of a userindicating an expertise in a topic.

In various implementations, expertise identification component 206 maybe configured to access a record of prior interactions with the systemfor each user to identify indications of expertise in one or more of aplurality of topics for each user. For example, expertise identificationcomponent 206 may be configured to identify indications of expertise inone or more of a plurality of topics for each of the set of users basedon a record of prior interactions by each of the users with system 100stored in knowledge database 122. In various implementations, expertiseidentification component 206 may be configured to identify indicationsof expertise in a given topic based on a record of contributions foreach user (such as questions, solutions to questions, or commentsrelated to questions or solutions the user has provided related to thattopic) and/or a record of feedback the user receives for theircontributions.

In various implementations, expertise identification component 206 maybe configured to identify indications of expertise from a record ofprior interactions by identifying one or more keywords, one or moretags, and/or one or more topics within the record of prior interactions.In some implementations, expertise identification component 206 may beconfigured to utilize a map of topics and tags to identify an indicationof an expertise in a given topic from a prior interaction based on oneor more tags identified for the prior interaction. In other words,expertise identification component 206 may be configured to determinethat a prior interaction is an indication of an expertise in a giventopic because one or more tags identified in the prior interactioncorrespond with the given topic. In various implementations, expertiseidentification component 206 may be configured to monitor a record ofprior interactions and identify indications of expertise in real-time.

In various implementations, expertise identification component 206 maybe configured to provide indications of expertise in one or more topicsidentified for each user to profile management component 202 and/orexpertise scoring component 210. In some implementations, theindications of expertise in one or more topics provided may include adate and/or time associated with the indication of expertise. Profilemanagement component 202 may be configured to store the receivedindications of expertise in one or more topics identified for each userin a user profile for each user. Expertise scoring component 210 may beconfigured to calculate an expert score for each of the one or moretopics for each user based on the received indications of expertise inthe one or more topics.

In various implementations, interest identification component 204 andexpertise identification component 206 may be configured to use thetechniques described above to identify indications of interest andindications of expertise in one or more topics to identify indicationsof interest and indications of expertise in one or more subtopics.

Topic mapping component 208 may be configured to map relationshipsbetween topics, subtopics, and/or tags. For example, topics may compriseone or more individuals, groups, places, items, tools, concepts, and/orother subjects relevant to system 100 or the users of system 100. In anexemplary implementation, energy may be a topic. A subtopic of energymay be renewable energy. Subtopics of renewable energy may behydropower, solar energy, and/or wind power. Each of “energy,”“renewable energy,” “hydropower,” “solar energy,” and/or “wind power”may itself comprise a tag. A tag is a keyword or phrase that may be usedto identify a topic. In various implementations, topic mapping component208 may interface with expertise scoring component 210 to map the expertresources of the organization or group of users based on the connectionsbetween topics (i.e., tags) and the expert score related to each topicfor each user. These connections are subsequently used during the expertrouting for each new question, to find those users with the expertise togive the best solutions.

In various implementations, topic mapping component 208 may beconfigured to use machine learning techniques to create a map of theexpert resources (i.e., a know-how map) that links each of the users ofsystem 100 with their areas of expertise. To do so, topic mappingcomponent 208 may be configured to use unsupervised learning techniquesand/or semi-supervised learning techniques. In some implementations,topic mapping component 208 may be configured to use unsupervisedlearning techniques, which are automated and require no human effort.For example, the learning algorithms automatically adapt themselves tothe different topics and use-cases that occur in differentorganizations. In some implementations, topic mapping component 208 maybe configured to use semi-supervised learning techniques. In variousimplementations, topic mapping component 208 may be configured todynamically update a map of the knowledge among the users of system 100over-time. In this way, users interact with the know-how map simply byusing the application. The resulting network of questions, tags andusers, which are all connected with each other, provides a self-learningmap of the know-how of the organization or group of users.

In various implementations, topic mapping component 208 may beconfigured to map the connections between individual tags to createclusters of related tags. For example, FIG. 3 illustrates how aplurality of tags may be connected, in accordance with one or moreimplementations of the invention. In some implementations, topic mappingcomponent 208 may be configured to map the connections betweenindividual tags based on a record of prior questions posed to system 100and how often different tags are associated with a single question. Insome implementations, topic mapping component 208 may be configured tomap the connections between individual tags by calculating a scoreindicating the relatedness of individual tags. The score indicating therelatedness of individual tags may be a rational number or numericalvalue calculated by topic mapping component 208 based on how oftendifferent tags are associated with a single question.

By mapping connections between tags that often occur together, topicmapping component 208 may be configured to create clusters of relatedtags. The connections between tags make identifying expert users toprovide solutions to questions more powerful because it may enableexperts to be identified based not only on the expert score for theusers for the topic of the question, but also the expert scores for theusers in topics that are the most closely related with the topic of thequestion. In various implementations, topic mapping component 208 may beconfigured to store information indicating connections between users,tags, and/or topics. For example, topic mapping component 208 may beconfigured to store a map of all connections between each user and eachtag.

In various implementations, topic mapping component 208 may beconfigured to dynamically update the map of all connections between eachuser and each tag based on interactions by users with system 100. Forexample, topic mapping component 208 may be configured to update the mapof all connections between each user and each tag based on the tagsassociated with each question, feedback received related to one or moresolutions, and/or other information related to interactions by userswith system 100. In various implementations, topic mapping component 208may be configured to utilize one or more machine learning techniques toautomatically update the map of connections between users and tags inreal-time.

In some implementations, topic mapping component 208 may be configuredto dynamically update the map of all connections between each user andeach tag responsive to new tags received by system 100. For example,topic mapping component 208 may be configured to map the connectionsbetween each user and a new tag obtained via user input and provided totopic mapping component 208 by question management component 120.Responsive to receipt of a new tag via user input, topic mappingcomponent 120 may be configured to prompt expertise scoring component210 to determine a level of interest for the new tag for each user andcalculate an expert score for the new tag for each user.

Expertise scoring component 210 may be configured to determine a levelof interest in each topic for each user and calculate an expert scorefor each topic for each user. For example, expertise scoring component210 may be configured to determine a level of interest in each topic foreach user and calculate an expert score for each topic for each userbased on a record of prior interactions by the users with system 100. Invarious implementations, expertise scoring component 210 may beconfigured to determine a level of interest in each topic for each userand calculate an expert score for each topic for each user based on arecord of prior interactions by the users with system 100 stored inknowledge database 122. In some implementations, expertise scoringcomponent 210 may be configured to access a record of prior interactionswith system 100 in knowledge database 122 to determine a level ofinterest in each topic for each user and calculate an expert score foreach topic for each user. In some implementations, expertise scoringcomponent 210 may be configured to calculate an expert score for a topicfor a user based on the level of interest in that topic for that userdetermined by expertise scoring component 210. In variousimplementations, expertise scoring component 210 may be configured todetermine and update a level of interest in each topic for each user andcalculate and update an expert score for each topic for each user basedon interactions by the user with system 100 as they occur. In otherwords, expertise scoring component 210 may be configured to determine alevel of interest in each topic for each user and calculate an expertscore for each topic for each user in real-time.

In various implementations, expertise scoring component 210 may beconfigured to determine a level of interest in one or more topics foreach user based on indications of interest in the one or more topics.For example, expertise scoring component 210 may be configured todetermine a level of interest in one or more topics for each user basedon indications of interest in the one or more topics identified byinterest identification component 204. The level of interest in eachtopic for each user may be a rational number or numerical valuecalculated by expertise scoring component 210. In variousimplementations, expertise scoring component 210 may be configured touse a multi-factor test to determine a level of interest in one or moretopics for each user. In some implementations, expertise scoringcomponent 210 may be configured to determine a level of interest in atopic for a user based on the indications of interest in that topic, thetypes of indications of interest identified in that topic, and/or theuser's level of interest in one or more other topics.

In various implementations, expertise scoring component 210 may beconfigured to determine a level of interest in one or more topics foreach user based on the types of indications of interest identified. Forexample, types of indications of interest in a topic may comprise one ormore views of prior questions, solutions, and/or comments related to thetopic, one or more searches related to the topic, and/or one or moreother types of indications of interest. In some implementations,expertise scoring component 210 may be configured to determine a levelof interest in one or more topics for each user by applying differentweights to different types of indications of interest. For example, oneor more searches related to a topic may be weighted more heavily thanone or more views of prior questions, solutions, and/or comments relatedto the topic when determining a level of interest in that topic.

In various implementations, expertise scoring component 210 may beconfigured to determine a level of interest in one or more topics foreach user based on the user's level of interest in one or more othertopics. In some implementations, the level of interest in a topic acrossthe users of system 100 may be unbounded, but the level of interestacross topics for each individual user may be bounded. That is, thetotal calculated level of interest across topics for each user may belimited to a maximum total level of interest. For example, a user may beequally interested in four topics. As indications of interest in one ormore other topics are identified, the user's calculated level ofinterest in the original four topics will decrease. In someimplementations, the user's level of interest in a given topic isrepresented as a percentage of their interest across topics.

In various implementations, expertise scoring component 210 may beconfigured to calculate an expert score for each topic for each userbased on indications of interest in the one or more topics andindications of expertise in the one or more topics. For example,expertise scoring component 210 may be configured to calculate an expertscore for each topic for each user based on indications of interest inthe one or more topics identified by interest identification component204 and indications of expertise identified by expertise identificationcomponent 206. The expert score for each topic for each user may be arational number or numerical value calculated by expertise scoringcomponent 210. In various implementations, expertise scoring component210 may be configured to use a multi-factor test to calculate an expertscore for each topic for each user. In some implementations, expertisescoring component 210 may be configured to calculate an expert score fora given topic for a user based on the indications of interest andindications of expertise identified, the types of indications ofinterest identified, the types of indications of expertise identified,the date and/or time associated with the indications of interest andindications of expertise, the expert score of other users for thattopic, and/or the user's expert score for other topics.

In various implementations, expertise scoring component 210 may beconfigured to calculate an expert score for a given topic for a userbased on the types of indications of interest identified and the typesof indications of expertise identified. In some implementations,expertise scoring component 210 may be configured to calculate an expertscore for a given topic for a user by applying different weights todifferent types of indications of interest and different types ofindications of expertise. For example, with respect to different typesof indications of interest, one or more searches related to a topic maybe weighted more heavily than one or more views of prior questions,solutions, and/or comments related to the topic when determining a levelof interest in that topic. Types of indications of expertise in a topicmay comprise content the user has contributed related to that topic(such as questions, solutions to questions, or comments related toquestions or solutions the user has provided related to that topic) andthe feedback the user receives for the content they have contributed(e.g., feedback from another user that provided a question to the systemfor a solution the user provided for that question). With respect tocalculating an expert score for a given topic for a user based on thetypes of indications of expertise identified, the feedback the userreceives for content they have contributed related to that topic may beweighted more heavily than the content the user has contributed itselfrelated to that topic. In various implementations, indications ofexpertise in a given topic may be weighted more heavily than indicationsof interest in that topic when calculating an expert score for thattopic.

In various implementations, expertise scoring component 210 may beconfigured to calculate an expert score for a given topic for a userbased on the date and/or time associated with the indications ofinterest and indications of expertise. A user who has been active morerecently is more likely to provide an up-to-date solution than a userwho has not recently shown an interest in a topic or hasn't made anyrecent relevant contributions to that topic. As such, expertise scoringcomponent 210 may weight more heavily recent indications of interest andindications of expertise than less recent indications of interest andindications of expertise.

In various implementations, expertise scoring component 210 may beconfigured to calculate an expert score for a given topic for a userbased on the user's expert score for other topics. In someimplementations, the expert score for each user across topics may bebounded. In other words, the total knowledge for each user may bebounded. For example, a given user may be knowledgeable about renewableenergy. As the user acquires knowledge about new and/or other topics,the user's knowledge about renewable energy may be pushed further backin the user's mind. As such, expertise scoring component 210 may beconfigured to normalize a given user's expert scores across multipletopics to ensure the sum of the expert scores does not exceed apredefined limit. The predefined limit may comprise an upper bound or amaximum total expert score. In some implementations, expertise scoringcomponent 210 may be configured to weight more recent indications ofinterest and indications of expertise than less recent indications ofinterest and indications of expertise when normalizing the user's expertscore.

In various implementations, expertise scoring component 210 may beconfigured to calculate an expert score for a given topic for a userbased on the expert score of other users for that topic. In someimplementations, the expert score for the users of system 100 may bebounded. In other words, the total knowledge amongst all users of system100 about a certain topic is bounded. By bounding the total knowledge ofthe users of system 100 (i.e., the expert scores across the users ofsystem 100), a user posing a question to system 100 may be certain thatthey are matched with one of a portion of the users of system 100 thatqualify as experts in that topic (i.e., one of the most knowledgeable ofthe users of system 100 for that topic). In some implementations,expertise scoring component 210 may be configured to normalize theexpert scores for the users of system 100 for a given topic to ensurethe sum of the expert scores does not exceed a predefined limit. Thepredefined limit may comprise an upper bound or a maximum total expertscore. In some implementations, expertise scoring component 210 may beconfigured to weight more recent indications of interest and indicationsof expertise than less recent indications of interest and indications ofexpertise when normalizing the expert scores for a given topic acrossusers.

The distribution of knowledge on a certain topic among all users can bevisualized on a pie chart. The total size of the pie represents allknowledge about this topic. Users might lay claim to slices of this pie,representing their share of the total knowledge (e.g. by writingsolutions to related questions). As a larger and larger percentage ofthe pie is claimed, slices corresponding to older contributionsgradually decrease in size. In some implementations, a part of the piemay always be available to be awarded to new contributions.

For example, FIG. 4 illustrates how expert scores for users of system100 may be affected for a given topic over time, in accordance with oneor more implementations of the invention. Exemplary scenario 402illustrates how the timing of contributions are considered whendetermining expert scores. As each new contribution by a new user for agiven topic is received, the weight assigned to older contributions isreduced. Exemplary scenario 404 illustrates how multiple contributionsby a single user are treated when a new user makes a contribution. UserA has made several contributions related to a given topic. A singlecontribution by User B may be given more weight than any of the priorcontributions by User A, but User A's portion of the pie (or expertscore) remains larger due to the number of contributions by User A overtime.

In various implementations, expertise scoring component 210 may beconfigured to calculate an updated expert score for a given topic for auser based on feedback received related to that user. In someimplementations, question management component 120 may be configured toprompt a user for feedback when a solution to a question posed by thatuser has been provided by a contributing user. In some implementations,expertise scoring component 210 may be configured to calculate anupdated expert score for the topic of the question based on the feedbackreceived in response to that prompt. In some implementations, expertisescoring component 210 may be configured to calculate an updated expertscore for a given topic for a user based on feedback received related tothat user in real-time. As such, expertise scoring component 210 may beconfigured to dynamically determine the expertise of system 100 bycalculating updating expert scores for users in real-time based onfeedback received by the system. In an exemplary implementation,expertise scoring component 210 may be configured to receive anindication of a low rating for a solution provided for a user. Forexample, a user may receive a 1 out of 5 rating for a solution providedrelated to a first topic. The low rating for the solution may cause theexpert score for the user for the first topic to weaken or decrease.

Language identification component 212 may be configured to identify thelanguage of content provided to and/or accessible by system 100. Invarious implementations, language identification component 212 may beconfigured to identify the language (i.e., English, German, French,Italian, and/or other languages) of each interaction by a user withsystem 100. For example, language identification component 212 may beconfigured to identify the language of each question, solution, orcomment provided by users. In various implementations, languageidentification component 212 may be configured to use one or morenatural language processing techniques to identify the language ofquestions, solutions, or comments provided by users. For example,language identification component 212 may be configured to use one ormore natural language processing algorithms to identify the language ofquestions, solutions, or comments provided by users.

In various implementations, language identification component 212 may beconfigured to provide an indication of the language of a question,solution, or comment provided by a specific user to profile managementcomponent 202. Profile management component 202 may be configured tostore user profile information indicating the language proficiencies ofeach user. Based on the language of a question, solution, or commentprovided by a specific user to profile management component 202, profilemanagement component 202 may be configured to update the user profileinformation for that specific user indicating the language proficienciesof that user.

Gamification component 214 may be configured to manage a game based oncontributions by users. User involvement in system 100 may be encouragedand/or incentivized by providing a game that tracks user activity,awards points based on user activity, and/or rewards users based on useractivity. In various implementations, gamification component 214 may beconfigured to allocate points to individual users based on particularuser activities. For example, the particular user activities that resultin points being allocated to a user may include posing a question (i.e.,asking a question), providing a solution to a question, rating asolution to a question, receiving a particular rating for a solutionprovided, reading one or more questions, reading one or more solutions,commenting on one or more questions, commenting on one or moresolutions, one or more activities comprising an indication of interest,one or more activities comprising an indication of expertise, anindication that a level of interest has reached one or more predefinedlevels, an indication that an expert score has reached one or morepredefined values, and/or other user activities within system 100. Insome implementations, gamification component 214 may be configured toallocate points to an individual user by crediting a game balance of theuser. In various implementations, the game information for a user storedin a user profile of the user may comprise a user score level, a numberof points (i.e., a game balance), and/or other game information.

In various implementations, gamification component 214 may be configuredto allocate points to a user for a given activity based on a point tableindicating the number of points to be allocated for each activity. Invarious implementations, gamification component 214 may be configured totrack a user score level of a user that is based on the number of pointsallocated to the user. For example, a user may level-up from User ScoreLevel 1 to User Score Level 2 when the total number of points allocatedto the user reaches 100. In some implementations, gamification component214 may be configured to cause a notification to be provided to the userwhen the user is allocated points and/or when the user levels up. Forexample, the notification may comprise an indication of the pointsallocated, the reason for the points being allocated, the user scorelevel reached, a reward being provided for being allocated a certainnumber of points or reaching a new level (i.e., a promotion and/or otherreward), and/or other information related to the game information of theuser. In some implementations, gamification component 214 may beconfigured to generate a list of users based on the user score of levelof the list of users. In some implementations, gamification component214 may be configured to cause the list of users based on the user scorelevel of the list of users to be provided to one or more individualusers, the list of users, and/or all users of system 100. In someimplementations, gamification component 214 may be configured to causethe list of users to be provided periodically (i.e., at predefinedintervals, on one or more predefined days each week or month, and/or atthe start or end of a predefined period). In some implementations, thelist of user may comprise a ranking of the users of system 100 by userscore level. The list may comprise all users and/or be bounded to acertain number of users.

The number of users at a given user score level may be unbounded. Thenumber of points required to reach each new user score level mayincrease at each user score level. For example, the number of pointsrequired to reach User Score Level 1 may be 100 points, the number ofpoints required to reach User Score Level 2 may be 150 points, and thenumber of points required to reach User Score Level 2 may be 200 points.In some implementations, the number of points required to reach each newuser score level may increase uniformly and/or exponentially.

Referring back to FIG. 1, user interface component 118 may be configuredto generate a user interface and cause the user interface to bedisplayed to a user. In various implementations, the user interface maybe displayed to a user via a display interface of one or more userdevices 130. For example, a user interface may be displayed to a uservia a graphical user interface of one or more user devices 130. In someimplementations, user interface component 118 may be configured togenerate a user interface comprising a dashboard in which a user mayaccess information, provide input, and/or otherwise interact with system100.

In various implementations, the user interface may comprise a webpage, adashboard, and/or other display that provides a visual representation ofa list of questions submitted by users (i.e., questions posed to system100), solutions to questions provided by users, comments submitted byusers related to one or more questions, feedback received for questionsor solutions provided to system 100, and/or other information related toone or more questions provided to system 100. In some implementations,the user interface may provide a user with a visual representation ofuser information. For example, the user information may comprise userprofile information, a record of prior interactions by each of the userswith system 100 (such as a viewing history, a search history, a recordof questions asked, a record of solutions provided, a record of commentsprovided, feedback received, and/or other prior interactions by each ofthe users with system 100), and/or other user information. In variousimplementations, user interface component 118 may be configured togenerate a user interface that includes one or more other features asdescribed below with respect to question management component 120.

Question management component 120 may be configured to facilitateprovision of an interface that may receive questions from users, requestsolutions to questions from expert users, and prompt users for feedbackregarding solutions provided. In various implementations, questionmanagement component 120 may interface with expertise mapping component116 and user interface component 118 to provide users of system 100 witha webpage, dashboard, and/or other user interface configured to answerquestions submitted by users by routing the questions to expertresources able to provide solutions based on a map of the expertresources available to system 100.

In various implementations, question management component 120 may beconfigured to obtain a question from a user. The question may bereceived as user input provided by a user. For example, the user inputmay comprise textual input provided by a user. In variousimplementations, user interface component 118 may be configured toreceive textual input via a search bar or other user input component ofa user interface. In some implementations, user interface component 118may be configured to generate a user interface comprising a user inputcomponent configured to receive questions posed by users.

In some implementations, question management component 120 may beconfigured to autocomplete words and/or questions as textual input isreceived. For example, question management component 120 may beconfigured to recognize words or phrases from textual input as it isentered. Based on the recognized words or phrases from the textualinput, question management component 120 may be configured to completeat least a portion of the textual input and/or provide a suggestion onhow to complete at least a portion of the textual input.

In some implementations, question management component 120 may beconfigured to identify suggested questions based on textual inputprovided by a user. For example, as a user provides textual input,question management component 120 may be configured to predict theuser's question and/or identify one or more related questions. Thesuggested questions may comprise predictions of the question to be askedby the user. In some implementations, question management component 120may be configured to identify suggested questions based on keywords ofthe textual input provided by the user. In some implementations,question management component 120 may be configured to identifysuggested questions based on textual input provided by the user inreal-time. In other words, question management component 120 may beconfigured to identify suggested questions as a user types to reflectthe current textual input entered by the user. In some implementations,user interface component 118 may be configured to generate a userinterface that provides the suggested questions identified by questionmanagement component 120. For example, the suggested questions may beprovided in a drop-down list below the textual input component in whichthe textual input is provided.

In various implementations, question management component 120 may beconfigured to identify one or more tags to associate with a question andcause the one or more tags to be associated with the question. Forexample, question management component 120 may be configured to identifyone or more tags to associate with a question (i) based on stored tags,(ii) based on tags associated with similar questions, (iii) byextracting tags from the question, and/or (iv) based on user inputindicating one or more tags to associate with the question. In someimplementations, question management component 120 may be configured toassociate a number of tags with a question less than or equal to apredefined maximum number of tags. In an exemplary implementation, nomore than ten tags may be associated with each question. In someimplementations, question management component 120 may be configured toidentify one or more tags to associate with a question and provide theone or more identified tags as recommendations via a user interfacegenerated by user interface component 118. In various implementations,question management component 120 may be configured to cause one or moretags identified for a question (e.g., one or more tags identified basedon user input and/or one or more tags automatically identified) to beassociated with the question.

In some implementations, question management component 120 may beconfigured to automatically identify one or more tags to associate witha question based on keywords of the textual input provided by the user.For example, question management component 120 may be configured toautomatically identify, from the set of tags stored by system 100, oneor more tags to associate with a question based on keywords of thetextual input provided by the user. In some implementations, questionmanagement component 120 may be configured to automatically identify oneor more tags to associate with a question based on keywords of thetextual input provided by the user and connections between tags. Forexample, question management component 120 may be configured toautomatically identify the first tag “energy” based on the keyword“energy” appearing in the textual input provided by the user. Questionmanagement component 120 may be configured to further identify one ormore tags by identifying one or more tags connected to “energy” based ona record of prior questions posed to system 100 and how often “energy”and one or more other tags are associated with a single question. Invarious implementations, question management component 120 may beconfigured to automatically identify one or more tags to associate witha question based on keywords of the textual input and connectionsbetween individual tags mapped by topic mapping component 208. Forexample, and referring to the foregoing example, question managementcomponent 120 may be configured to automatically identify a first tagand/or a second tag to associate with a question in addition to the tag“energy” based on the connections mapped between “energy,” the firsttag, and the second tag by topic mapping component 208. Questionmanagement component 120 may be configured to identify the first tag andthe second tag based on a determination that the connection between thefirst tag and “energy” and the connection between the second tag and“energy” are the highest score connections with the tag “energy.” Invarious implementations, question management component 120 may beconfigured to associate automatically identified tags with the question.

In some implementations, question management component 120 may beconfigured to identify one or more tags to associate with a questionbased on tags associated with similar questions. For example, questionmanagement component 120 may be configured to identify one or more tagsto associate with a question based on tags associated with similarquestions that have been identified by question management component 120using reflexive random indexing and/or one of the other techniquesdescribed herein. In some implementations, question management component120 may be configured to identify one or more tags to associate with aquestion based only on similar questions that are within a predefinedthreshold degree of similarity to the questions (e.g., based on apredefined number of matching keywords or based on a predefinedthreshold similarity score) and/or are within a top number of similarquestions. For example, question management component 120 may beconfigured to identify one or more tags to associate with a questionbased only on the top 5 similar questions identified.

In some implementations, question management component 120 may beconfigured to identify one or more tags to associate with a question byautomatically extracting tags from the question. For example, questionmanagement component 120 may be configured to identify one or more tagsthat are not stored in a set of stored tags by system 100 to associatewith a question based on keywords of the textual input provided by theuser. By extracting keywords from a question provided by a user andassociating the keywords with the question as new tags, system 100 maybe able to associate tags with questions without necessarily preloadinga set of stored tags when developing a cognitive engine for a neworganization or set of users.

In some implementations, question management component 120 may beconfigured to identify one or more tags to associate with a questionbased on user input indicating one or more tags to associate with thequestion. For example, a user may search for one or more tags via asearch bar of the user interface generated by user interface component118 and/or select one or more recommended tags identified by questionmanagement component 120 and provided via the user interface generatedby user interface component 118. In some implementations, user inputindicating one or more tags to associate with the question may comprisetextual input. The textual input may identify one or more tags notstored or indexed by the system (e.g., one or more new tags that relateto new topics or new ways of referring to an existing topic).

In some implementations, question management component 120 may beconfigured to determine that the tags stored (i.e., the tags stored inknowledge database 122 and/or otherwise known by system 100) do notinclude a new tag extracted from a question and/or obtained via userinput. In other words, question management component 122 may beconfigured to determine whether the new tag is similar to at least onetag of the tags stored. For example, question management component 122may be configured to determine whether the new tag is within a thresholddegree of similarity to at least one tag of the tags stored. Based on adetermination that a tag extracted from a question and/or obtained viauser input is a new tag, question management component 120 may beconfigured to cause an indication of the new tag identified to beprovided to topic mapping component 208. In some implementations,question management component 120 may be configured to cause anindication of a new tag identified to be provided to topic mappingcomponent 208 only if the question associated with the new tag ispublished, if the question is provided to one or more expert users, ifan answer or solution to the question is provided and/or if one or moreother criteria is met.

In some implementations, question management component 120 may beconfigured to identify and provide an indication of one or morequestions previously posed to system 100 that are similar to a questioncurrently entered. In some implementations, question managementcomponent 120 may be configured to identify one or more questions bysearching a record of prior questions posted to system 100 for one ormore questions previously posed with one or more matching keywords. Insome implementations, question management component 120 may beconfigured to identify and provide all questions previously posed tosystem 100 that have a predefined minimum percentage of matchingkeywords and/or a predefined minimum number of matching keywords.

In some implementations, question management component 120 may beconfigured to identify one or more questions previously posed to system100 that are similar to a question currently entered using reflexiverandom indexing and/or one or more other computational techniques. Theone or more other computational techniques may include one or morecomputational techniques now known or future developed. Reflexive randomindexing generates similarity from co-occurrence and from sharedoccurrence with other items. For example, question management component120 may be configured to compute a vector in a multidimensional spacecorresponding to each question based on the words and expressions usedin the question and its solutions. Questions about related topics end uphaving vectors that lie close to each other (cosine similarity). When auser enters a new question, question management component 120 may beconfigured to compute a vector corresponding to the user's textualinput. Question management component 120 may be configured to identifyone or more questions previously posed to system 100 that are similar toa question currently entered by identifying previously posed questionsthat have similar vectors to the question currently entered.

For example, FIG. 5 illustrates how similar questions may be identifieddespite diversity in textual formation between the questions, inaccordance with one or more implementations of the invention. Thequestion “What are the cost efficiency differences between hydro- andwind-power?” may relate to the tags “wind power,” “hydro power,” and“renewable energy sources.” The question “Where do I find moreinformation about solar power plants?” may relate to the tags “solarenergy” and “renewable energy sources.” Despite the fact that the twoquestions only have one tag in common, question management component 120may be configured to determine the two questions have a high degree ofsimilarity due to the connections between the tags of the individualquestions and the connections between the tags of the individualquestions and similar tags.

In some implementations, question management component 120 may beconfigured to identify and provide at least a predefined number ofsimilar questions for each question submitted. For example, questionmanagement component 120 may be configured to score and/or rank allsimilar questions identified and provide at least the predefined numberof similar questions based on the score and/or rank of the identifiedsimilar questions. In some implementations, question managementcomponent 120 may be configured to identify one or more tags toassociate with a question based on tags associated with similarquestions posed to system 100.

In various implementations, question management component 120 may beconfigured to identify a user to route a question to based on the one ormore tags associated with the question. In some instances, a questionposed to system 100 may relate to a single topic. As such, the questionmay be associated with a single tag and the user to route the questionto may be identified simply by identifying the user with the highestexpert score for that topic. However, questions posed to the systemfrequently relate to multiple topics, and are thus frequently associatedwith multiple tags. In various implementations, question managementcomponent 120 may be configured to identify a user to route a questionby predicting the one or more users of system 100 that are most likelyto provide a correct and fast solution to the question. To do so,question management component 120 may be configured to identify the userwhose expertise best matches the particular combination of tagsassociated with a question.

In various implementations, question management component 120 may beconfigured to identify the user whose expertise best matches theparticular combination of tags associated with a question by calculatinga score for the combination of tags for each user. To calculate a scorefor the combination of tags for each user, question management component120 may be configured to weight a user's expert scores for relevant tagsdifferently. In some implementations, question management component 120may be configured to weight expert scores for more specific tags (e.g.,“Outlook”) greater than expert scores for broader tags (e.g., email). Insome implementations, question management component 120 may beconfigured to include expert scores for tags not included in thecombination of tags in the calculation of a score for the combination oftags for the question. For example, question management component 120may be configured to include expert scores for tags that are closelyrelated, per the connections between tags mapped by topic mappingcomponent 208, but weight the tags in the combination of tags greaterthan the tags not included in the combination of tags.

For example, FIG. 6 illustrates the connections that may be determinedto identify the best user to route a question to, in accordance with oneor more implementations of the invention. When each question isreceived, question management component 120 may be configured toidentify one or more tags to associate with each question based onkeywords of the textual input provided by the user. For example,question management component 120 may be configured to calculate thesignificance of each tag to each question submitted. Calculating thesignificant of each tag to a question may comprise determining a weightto apply to each tag based on the tags of the combination of tagsassociated with the question, connections between the tags in thecombination of tags associated with the question, connections betweenthe tags in the combination of tags associated with the question and oneor more other tags, tags of similar questions identified, and/or otherinformation mapped by system 100. For example, question managementcomponent 120 may be configured to calculate the significance of eachtag to each question submitted based on the mapped connections by topicmapping component 208. Based on the weights assigned to each tag,question management component 120 may be configured to identify a userbest suited to answer the question by weighting the corresponding expertscores for each user related to each tag according to the weightassigned to each tag. The highest scoring user may be identified as anexpert user to route the question.

In some implementations, question management component 120 may beconfigured to identify a user from a set of users to route a questionbased on the workload of each user. Repeatedly routing questions to thesame user may result in a user receiving too many questions to answer.Moreover, repeatedly routing questions for a given topic to the sameuser may prevent other users from demonstrating expertise in that topic.By analyzing the activity of different users by time and day of theweek, we can alert those experts for a new question who are likely to beavailable to provide a solution without delay. In doing so, the systemsand methods described herein may make sure that the highest scoringexperts are not demotivated by receiving too many questions. In someimplementations, question management component 120 may be configured todynamically allocate questions to identified users based on the workloadof each user. For example, question management component 120 may beconfigured to determine a workload of each user by determining a numberof questions routed to each user, a number of questions routed to eachuser during a limited time period (e.g., during the last week), a numberof questions routed to each user that have not been answered (i.e., anumber of unanswered questions), a number of solutions provided by eachuser, a number of solutions provided by each user during a limited timeperiod (e.g., during the last month), and/or other indications of theworkload for each user. In some implementations, question managementcomponent 120 may be configured to cause a question to be provided to anidentified user of a set of users based on the workload of one or moreof the set of users. For example, question management component 120 maybe configured to cause a question to be provided to a first user with alower expert score for the question than a second user with a higherexpert score for the question based on a determination that the seconduser has a greater number of unanswered questions than the first user.

In some implementations, question management component 120 may beconfigured to identify a user from a set of users to route a question tobased on the language proficiencies of each of the set of users. In someimplementations, question management component 120 may be configured todetermine that a question is in a first language and cause the questionto be routed to a first user with a lower expert score for the questionthan a second user with a higher expert score for the question based ona determination that the second user is not proficient in the firstlanguage but the first user is. In some implementations, questionmanagement component 120 may be configured to cause a question to berouted to an identified user based on the language proficiencies theidentified user. For example, question management component 120 may beconfigured to determine that a question is in a first language and causethe question to be translated from a second language to the firstlanguage based on a determination that the second user is not proficientin the first language but is proficient in the second language.

In various implementations, question management component 120 may beconfigured to identify multiple users as expert users to route aquestion to based on one or more of the foregoing techniques. Forexample, combing all of the foregoing factors (i.e., the set of tags,the expert scores for each user, the workload of each user, the languageproficiencies of each user, and/or other information), questionmanagement component 120 may be configured to obtain an ordered list ofusers identified as expert users to route the question to. The orderedlist of users may represent the top experts (i.e., the users with thehighest expert score) for a given question at a given time.

In various implementations, question management component 120 may beconfigured to cause the question to be provided to the one or more usersidentified as expert users. For example, question management component120 may be configured to cause a message to be transmitted to theidentified user that includes the question. In some implementations,question management component 120 may be configured to cause anotification to be provided to the identified user via the userinterface generated by user interface component 118. In someimplementations, question management component 120 may be configured tocause an email to be transmitted to the identified user that includesthe question. In some implementations, question management component 120may be configured to cause a notification to be provided to theidentified user via the user interface generated by user interfacecomponent 118. For example, the user interface may include a displaycomponent that indicates when a user has one or more unreadnotifications or unresolved questions.

In various implementations, question management component 120 may beconfigured to cause the question to be provided to a predefined numberof users identified as expert users. For example, question managementcomponent 120 may be configured to cause the question to be provided toa certain number of users appearing at the top of the ordered list ofusers. In an exemplary implementation, the predefined number of users towhich a question is to be routed to may comprise four to ten experts tomaximize the likelihood of getting a quality solution or answer to thequestion as soon as possible.

In various implementations, the users identified as expert users may notbe broadcasted or known by other users—even to the user that asked thequestion. In other words, there is no broadcasting. Users may only benotified about questions for which they are identified as an expert userto route the question to (i.e., questions for which the user isidentified as a top expert). This limits the number of notificationsthat every user receives, and keeps the experts motivated to contributetheir knowledge when it is really needed.

In various implementations, question management component 120 may beconfigured to cause questions to be provided to users identified as anexpert user based on communication preferences for each user. To achieveoptimal results, users may be notified of questions, solutions, and/orcomments through user-defined communication channels. That is, in someimplementations, users may only receive notifications throughcommunication channels of their choice. The communication preferencesmay be obtained from a user profile for each user. For example, userprofile information for a user may include communication preferences forthe user (i.e., preferred means of communication for each user).

In various implementations, question management component 120 may beconfigured to obtain a solution to a question from a user. In someimplementations, question management component 120 may be configured toreceive the solution from the user. For example, the user may providethe solution with user device 130 via a user interface generated by userinterface component 118. For example, user interface component 118 maybe configured to generate a user interface comprising a textual inputcomponent that appears when a user wishes to provide a solution. Theuser interface may comprise a selectable icon that enables a user toindicate the user wishes to provide a solution. In variousimplementations, question management component 120 may be configured tocause the solution to be posted to a user interface and appear inassociation with the corresponding question. In some implementations,question management component 120 may be configured to cause the userthat asked a question to be notified via a user interface generated byuser interface component 118 that a solution to the question has beenprovided. For example, the user that asked the question may receive analert via a user interface indicating the question has been answered. Invarious implementations, question management component 120 may beconfigured to cause the solution obtained to be provided to expertisemapping component 116 and/or stored in knowledge database 122.

In various implementations, question management component 120 may beconfigured to prompt the user that asked a question for feedback relatedto the solution provided. For example, management component 120 may beconfigured to prompt the user that asked a question for feedback relatedto the solution provided by providing a selectable component via a userinterface generated by user interface component 118 configured toreceive feedback related to the solution. The selectable icon may appearin association with the question and/or solution on the user interface.In some implementations, the feedback provided may comprise textualinput detailing the user that asked the question's opinion of thesolution. In some implementations, the feedback provided by comprisenumerical input indicating the quality of the solution out of apredefined number. For example, a user may give a solution a number ofstars out of 5, a score from 1-10, and/or other numerical feedback. Invarious implementations, question management component 120 may beconfigured to prompt the user that asked a question for feedback relatedto the solution provided when the solution is provided. The prompt maycomprise an alert, notification, message, e-mail, and/or other promptfor feedback.

In various implementations, question management component 120 may beconfigured to cause the feedback received to be provided to expertisemapping component 116 and/or stored in knowledge database 122. In someimplementations, feedback received may be used by topic mappingcomponent 208 to map relationships between topics, subtopics, and/ortags. In some implementations, feedback received may be used byexpertise scoring component 210 to calculate an expert score for eachtopic for each user.

In various implementations, question management component 120 may beconfigured to use the feedback received to monitor the accuracy ofsystem 100. For example, system 100 may be associated with an accuracyalgorithm. The accuracy algorithm may be updated and monitored byexpertise mapping component 116. For example, topic mapping component208 and expertise scoring component 210 may utilize the accuracyalgorithm to map relationships between topics, subtopics, and/or tagsand update expert scores for users, respectively. The accuracy algorithmmay be tied to the machine learning and dynamic allocation of experts.The accuracy algorithm may measure the performance of system 100 usingone or more different metrics. For example, a key indicator may comprisethe accuracy of the expert routing. This is the percentage of questionsthat are solved by one of the experts who were identified by the expertsearch algorithm. The quality of solutions can be measured by feedbackrelated to the corresponding solution.

Knowledge database 122 may be configured to store information related toa plurality of users. For example, knowledge database 122 may beconfigured to store information related to a plurality of users withaccess to system 100. The plurality of users with access to system 100may comprise a set of users. In some implementations, the users ofsystem 100 may comprise individual members of an organization orpredefined group of users. For example, in various implementations,knowledge database 122 may be configured to store user profileinformation, a record of prior interactions by each of the users withsystem 100 (such as a viewing history, a search history, a record ofquestions asked, a record of solutions provided, a record of commentsprovided, feedback received, and/or other prior interactions by each ofthe users with system 100), a set of tags that each correspond to atleast one topic, connections between topics, sub-topics, and/or tags,and/or other information used by the system of map and identify expertresources. System 100 may facilitate access to knowledge database 122 byeach of the one or more components of system 100.

User device(s) 130 (also interchangeably referred to herein as userdevice 140, user devices 140, or one or more user devices 140 forconvenience) may be used by users of system 100 to interface with system100. In some instances, user device(s) 130 may be programmed to enable auser to access a user interface generated by user interface component118, provide textual input related to one or more questions submitted tosystem 100 (e.g., provide a question, provide a solution to a question,comment on a question, and/or provide feedback related to a question),and/or otherwise interact with system 100. In some implementations,although not illustrated, user device(s) 130 may be programmed with someor all of computer readable instructions 114 to perform some or all ofthe functions of computer readable instructions 114 locally at userdevice(s) 130.

User device(s) 130 may be configured as a server device (e.g., havingone or more server blades, processors, etc.), a gaming console, ahandheld gaming device, a personal computer (e.g., a desktop computer, alaptop computer, etc.), a smartphone, a tablet computing device, anInternet of Things (IoT) device, a wearable device, and/or other devicethat can be programmed to interface with computer system 110.

Exemplary Flowcharts of Processes

FIG. 7 illustrates a process 700 of mapping expert resources within anorganization or group of users, in accordance with one or moreimplementations. The operations of process 700 presented below areintended to be illustrative and, as such, should not be viewed aslimiting. In some implementations, process 700 may be accomplished withone or more additional operations not described, and/or without one ormore of the operations discussed. In some implementations, two or moreof the operations may occur substantially simultaneously. The describedoperations may be accomplished using some or all of the systemcomponents described in detail above.

In some implementations, process 700 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operations of process 700 in response to instructions storedelectronically on one or more electronic storage mediums. The one ormore processing devices may include one or more devices configuredthrough hardware, firmware, and/or software to be specifically designedfor execution of one or more of the operations of process 700.

In an operation 702, process 700 may include accessing a record of priorinteractions with system for each of a set of users. For example, therecord of prior interactions by each of the users may be stored in aknowledge database (e.g., knowledge database 122). In someimplementations, operation 702 may be performed by a processor componentthe same as or similar to interest identification component 204 andexpertise identification component 206 (shown in FIG. 2 and describedherein).

In an operation 704, process 700 may include identifying indications ofinterest and expertise in one or more topics from the record of priorinteractions with the system. An indication of interest in a topic maycomprise one or more views of prior questions received by the systemrelated to the topic, one or more searches related to the topic, and/orone or more other prior interactions of a user indicating an interest ina topic. An indication of expertise in a topic may comprisecontributions related to that topic (e.g., questions, solutions, orcomments related to that topic), feedback from other users of thecontent the user contributed related to that topic, and/or one or moreother prior interactions of a user indicating an expertise in a topic.As such, indications of interest and expertise in a given topic may beidentified from the viewing history for each user indicating one or moreviews of prior questions, solutions, and/or comments related to thetopic, the search history indicating one or more searches related to thetopic, the record of contributions for each user (such as questions,solutions to questions, or comments related to questions or solutionsthe user has provided related to that topic), and/or a record offeedback the user receives for their contributions. In variousimplementations, indications of interest and expertise in a topic may beidentified by identifying one or more tags (or keywords) associated withthe topic within the record of prior interactions with the system. Insome implementations, operation 704 may be performed by a processorcomponent the same as or similar to interest identification component204 and expertise identification component 206 (shown in FIG. 2 anddescribed herein).

In an operation 706, process 700 may include applying weights toindividual indications of interest and expertise based on the type ofinteraction and the time of the interaction for each of the indicationsof interest and expertise. For example, indications of expertise in agiven topic may be weighted more heavily than indications of interest inthat topic when calculating an expert score for that topic. The weightsmay represent a multi-factor test for calculating expert scores. In someimplementations, operation 706 may be performed by a processor componentthe same as or similar to expertise scoring component 210 (shown in FIG.2 and described herein).

In an operation 708, process 700 may include calculating an expert scorein one or more topics for each of the set of users based on theindividual indications of interest and expertise and the correspondingweights assigned to each of the individual indications of interest andexpertise. In some implementations, calculating a user's expert scorefor a given topic may factor in the indications of interest andexpertise identified for that topic, the types of indications ofinterest identified, the types of indications of expertise identified,the date and/or time associated with the indications of interest orexpertise, the expert score of other users for that topic, and/or theuser's expert score for other topics, among other factors. In someimplementations, operation 708 may be performed by a processor componentthe same as or similar to expertise scoring component 210 (shown in FIG.2 and described herein).

FIG. 8 illustrates a process 800 of identifying expert resources toroute questions based on mapped expert resources, in accordance with oneor more implementations. The operations of process 800 presented beloware intended to be illustrative and, as such, should not be viewed aslimiting. In some implementations, process 800 may be accomplished withone or more additional operations not described, and/or without one ormore of the operations discussed. In some implementations, two or moreof the operations may occur substantially simultaneously. The describedoperations may be accomplished using some or all of the systemcomponents described in detail above.

In some implementations, process 800 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operations of process 800 in response to instructions storedelectronically on one or more electronic storage mediums. The one ormore processing devices may include one or more devices configuredthrough hardware, firmware, and/or software to be specifically designedfor execution of one or more of the operations of process 800.

In an operation 802, process 800 may include receiving a question from auser. The question may be received as user input provided by a user. Forexample, the user input may comprise textual input provided by a user.Textual input may be received via a search bar or other user inputcomponent of a user interface. In various implementations, suggestedquestions, words, or tags may be provided as textual input is provided.In other words, dynamic suggestions related to the textual input orquestion may be provided in real-time. In some implementations,operation 802 may be performed by a processor component the same as orsimilar to user interface component 118 and question managementcomponent 120 (shown in FIG. 1 and described herein).

In an operation 804, process 800 may include determining one or moretags to associate with the question. The number of tags associated witha question may be limited by a maximum number of tags (e.g., no morethan 10 tags per question). Tags to associate with the question may beautomatically determined by the system or determined based on user inputindicating one or more tags to associate with the question. In someimplementations, the one or more tags to associate with the question maybe identified from a set of stored tags. In some implementations, one ormore tags to associate with a question may be provided asrecommendations via the user interface in association with the textualinput provided by the user. In some implementations, one or more tags toassociate with a question may be automatically identified based onkeywords of the textual input provided by the user and connectionsbetween one or more tags. In some implementations, operation 804 may beperformed by a processor component the same as or similar to questionmanagement component 120 (shown in FIG. 1 and described herein).

In an operation 806, process 800 may include identifying an expert userfrom a set of users to route the question based on the one or more tagsand the expert scores for each of a set of users related to the one ormore tags. To do so, a user may be identified whose expertise bestmatches the particular combination of tags associated with the question.In some implementations, the user identified as the expert user to routethe question may be identified from a set of users based on the workloadof each of the set of users. In some implementations, the useridentified as the expert user to route the question to may be identifiedfrom a set of users based on the language proficiencies of each of theset of users. In some implementations, operation 806 may be performed bya processor component the same as or similar to question managementcomponent 120 (shown in FIG. 1 and described herein).

In an operation 808, process 800 may include causing the question to beprovided to the expert user. In some implementations, operation 808 maybe performed by a processor component the same as or similar to questionmanagement component 120 (shown in FIG. 1 and described herein).

The description of the functionality provided by the differentinstructions described herein is for illustrative purposes, and is notintended to be limiting, as any of instructions may provide more or lessfunctionality than is described. For example, one or more of theinstructions may be eliminated, and some or all of its functionality maybe provided by other ones of the instructions. As another example,processor(s) 112 may be programmed by one or more additionalinstructions that may perform some or all of the functionalityattributed herein to one of the instructions.

The various instructions described herein may be stored in electronicstorage, which may comprise random access memory (RAM), read only memory(ROM), and/or other memory. In some implementations, the variousinstructions described herein may be stored in electronic storage of oneor more components of system 100 and/or accessible via a network (e.g.,via the Internet, cloud storage, and/or one or more other networks). Theelectronic storage may store the computer program instructions (e.g.,the aforementioned instructions) to be executed by processor(s) 112 aswell as data that may be manipulated by processor(s) 112. The electronicstorage may comprise floppy disks, hard disks, optical disks, tapes, orother storage media for storing computer-executable instructions and/ordata.

Implementations of the disclosure may be made in hardware, firmware,software, or any suitable combination thereof. Aspects of the disclosuremay be implemented as instructions stored on a machine-readable medium,which may be read and executed by one or more processors. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputing device). For example, a tangible computer readable storagemedium may include read only memory, random access memory, magnetic diskstorage media, optical storage media, flash memory devices, and others,and a machine-readable transmission media may include forms ofpropagated signals, such as carrier waves, infrared signals, digitalsignals, and others. Firmware, software, routines, or instructions maybe described herein in terms of specific exemplary aspects andimplementations of the disclosure, and performing certain actions.

Although illustrated in FIG. 1 as a single component, computer system110 and user device(s) 130 may each include a plurality of individualcomponents (e.g., computer devices) each programmed with at least someof the functions described herein. In this manner, some components ofcomputer system 110 and/or associated user devices may perform somefunctions while other components may perform other functions, as wouldbe appreciated. Furthermore, it should be appreciated that although thevarious instructions are illustrated in FIG. 1 as being co-locatedwithin a single processing unit, in implementations in whichprocessor(s) 112 include multiple processing units, one or moreinstructions may be executed remotely from the other instructions.

The various components illustrated in FIG. 1 may be coupled to at leastone other component via a network 102, which may include any one or moreof, for instance, the Internet, an intranet, a PAN (Personal AreaNetwork), a LAN (Local Area Network), a WAN (Wide Area Network), a SAN(Storage Area Network), a MAN (Metropolitan Area Network), a wirelessnetwork, a cellular communications network, a Public Switched TelephoneNetwork, and/or other network. In FIG. 1, as well as in other drawingFigures, different numbers of entities than those depicted may be used.Furthermore, according to various implementations, the componentsdescribed herein may be implemented in hardware and/or software thatconfigure hardware.

The one or more databases 104 described herein may be, include, orinterface to, for example, an Oracle™ relational database soldcommercially by Oracle Corporation. Other databases, such as Informix™,DB2 (Database 2) or other data storage, including file-based, orquestion formats, platforms, or resources such as OLAP (On LineAnalytical Processing), SQL (Structured Question Language), a SAN(storage area network), Microsoft Access™ or others may also be used,incorporated, or accessed. The one or more databases 104 can include anyknown suitable database and may comprise one or more such databases thatreside in one or more physical devices and in one or more physicallocations. The one or more databases 104 may store a plurality of typesof data and/or files and associated data or file descriptions,administrative information, or any other data.

For purposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the description. It will beapparent, however, to one skilled in the art that implementations of thedisclosure can be practiced without these specific details. In someinstances, modules, structures, processes, features, and devices areshown in block diagram form in order to avoid obscuring the description.In other instances, functional block diagrams and flow diagrams areshown to represent data and logic flows. The components of blockdiagrams and flow diagrams (e.g., modules, blocks, structures, devices,features, etc.) may be variously combined, separated, removed,reordered, and replaced in a manner other than as expressly describedand depicted herein.

Reference in this specification to “one implementation”, “animplementation”, “some implementations”, “various implementations”,“certain implementations”, “other implementations”, “one series ofimplementations”, or the like means that a particular feature, design,structure, or characteristic described in connection with theimplementation is included in at least one implementation of thedisclosure. The appearances of, for example, the phrase “in oneimplementation” or “in an implementation” in various places in thespecification are not necessarily all referring to the sameimplementation, nor are separate or alternative implementations mutuallyexclusive of other implementations. Moreover, whether or not there isexpress reference to an “implementation” or the like, various featuresare described, which may be variously combined and included in someimplementations, but also variously omitted in other implementations.Similarly, various features are described that may be preferences orrequirements for some implementations, but not other implementations.

The language used herein has been principally selected for readabilityand instructional purposes, and it may not have been selected todelineate or circumscribe the inventive subject matter. Otherimplementations, uses and advantages of the invention will be apparentto those skilled in the art from consideration of the specification andpractice of the invention disclosed herein. The specification should beconsidered exemplary only, and the scope of the invention is accordinglyintended to be limited only by the following claims.

What is claimed is:
 1. A system configured to map expert resourceswithin an organization or group of users and identify expert resourcesto route questions based on the mapped expert resources, the systemcomprising: a computer system comprising one or more physical processorsprogrammed with computer program instructions that, when executed by theone or more physical processors, program the computer system to: accessinformation indicating prior interactions with the system for each of aset of users, the set of users comprising at least a first user and asecond user; identify indications of interest or expertise for a set oftopics in the prior interactions by the set of users, wherein topicswithin the set of topics correspond to stored tags and include at leasta first topic and a second topic; calculate, for individual users of theset of users, an expert score for one or more topics of the set oftopics based on the identified indications of interest or expertise;responsive to receipt of a question from the second user, determine aset of tags from the stored tags to associate with the question, whereinthe set of tags comprise at least a first tag and a second tag of thestored tags, wherein the first tag corresponds to the first topic andthe second tag corresponds to the second topic; identify, based on theset of tags, one or more prior questions related to the question fromthe second user, wherein individual questions of the one or more priorquestions relate to at least one of the first tag and the second tag;determine that at least one of the identified one or more priorquestions is associated with a third tag of the stored tags; determinethat the set of tags associated with the question from the second userdoes not include the third tag; cause the third tag to be associatedwith the question from the second user based on the determination thatat least one of the identified one or more prior questions is associatedwith the third tag and the determination that the set of tags associatedwith the question from the second user does not include the third tag;identify the first user as an expert user to route the question from thesecond user to, wherein the first user is identified as an expert userbased at least on an expert score of the first user for the third tag;and cause the question from the second user to be provided to the firstuser.
 2. The system of claim 1, wherein the computer system is furtherprogrammed to: responsive to receipt of a response by the first user tothe question from the second user, prompt the second user for feedbackrelated to the perceived quality of the response by the first user;receive feedback responsive to the prompt; determine at least a firsttopic of the question from the second user based on the first tagassociated with the question; and update the expert score of the firstuser for the first topic based on the feedback.
 3. The system of claim1, wherein the identified indications of interest or expertise includeindications of interest and indications of expertise, and wherein tocalculate the expert score of the individual users of the set of usersfor the first topic of the set of topics, the computer system is furtherprogrammed to: apply a first weight to a first type of indication ofinterest related to the first topic and a second weight to a second typeof indication of interest related to the first topic, wherein the secondweight is greater than the first weight; and apply a third weight to afirst type of indication of expertise related to the first topic and afourth weight to a second type of indication of expertise related to thefirst topic, wherein the third weight and fourth weight are each greaterthan the second weight, and wherein the fourth weight is greater thanthe third weight.
 4. The system of claim 3, wherein the informationindicating prior interactions with the system comprises, for theindividual users of the set of users, a viewing history indicating oneor more views of prior questions received by the system or a searchhistory indicating one or more searches within the system, wherein thefirst type of indication of interest comprises a view of a priorquestion related to the first topic and the second type of indication ofinterest comprises a search related to the first topic.
 5. The system ofclaim 3, wherein the information indicating prior interactions with thesystem comprises a record of contributions for the individual users ofthe set of users, wherein a contribution comprises a question posed tothe system, a response submitted to the system, or feedback for aresponse submitted to the system, and wherein the first type ofindication of expertise comprises a question or response related to thefirst topic and the second type of indication of expertise comprisesfeedback for a response related to the first topic.
 6. The system ofclaim 1, wherein the computer system is further programmed to: update amap of connections between individual tags of the stored tags based onthe association of the question from the second user with the third tag,wherein updating the map of connections based on the association of thequestion from the second user with the third tag comprises updating theconnection between the first tag, the second tag, and the third tag; andresponsive to receipt of a second question from a user of the set ofusers related to at least the first topic, automatically cause the thirdtag to be associated with the second question based on the connectionbetween the first tag and the third tag.
 7. The system of claim 6,wherein to update the map of connections based on the association of thequestion from the second user with the third tag, the computer system isfurther programmed to: recalculate a score indicating the relatedness ofthe third tag to at least the first tag, wherein score comprises arational number or numerical value calculated based on how often thethird tag and the first tag are associated with a single question. 8.The system of claim 1, wherein the question from the second user relatesto the first topic, and wherein to cause the question from the seconduser to be provided to the first user, the computer system is furtherprogrammed to: identify a third user from the set of users to route thequestion from the second user based on the set of tags and the expertscores of each of the set of users; determine that one or more questionsrouted to the third user have not been answered; determine a number ofunanswered questions routed to the third user, the number of unansweredquestions including at least the one or more questions; determine anumber of unanswered questions routed to the first user, wherein thenumber of unanswered questions routed to the third user is greater thanthe number of unanswered questions routed to the first user, and whereinan expert score of the third user for the first topic is greater than anexpert score of the first user for the first topic; and cause thequestion from the second user to be provided to the first user based ona determination that the number of unanswered questions routed to thethird user is greater than the number of unanswered questions routed tothe first user.
 9. The system of claim 1, wherein the question from thesecond user relates to a first topic, and wherein to cause the questionfrom the second user to be provided to the first user, the computersystem is further programmed to: identify a third user from the set ofusers to route the question from the second user based on the set oftags and the expert scores of the individual users of the set of users,wherein an expert score of the third user for the first topic is greaterthan an expert score of the first user for the first topic; determine alanguage of the question from the second user; obtain an indication of alanguage proficiency of the third user; and cause the question from thesecond user to be provided to the first user based on a determinationthat the third user is not suitable to provide a solution to thequestion based on the language of the question and the languageproficiency of the third user.
 10. The system of claim 1, wherein thecomputer system is further programmed to: credit a first game account ofthe second user a first number of points based on the receipt of thequestion from the second user; responsive to receipt of a response bythe first user to the question from the second user, credit a secondgame account of the first user a second number of points based on thereceipt of the response to the question, wherein the second number ofpoints is greater than the first number of points; determine that thetotal number of points in the second game account exceeds a third numberof points, wherein the third number of points comprises a predefinedthreshold number of points to level up; and cause a notification to beprovided to the first user based on the determination that the totalnumber of points in the second game account exceeds the third number ofpoints, wherein the notification indicates that the first user hasleveled up.
 11. The system of claim 1, wherein the computer system isfurther programmed to: generate a user interface configured to receivethe question from the second user, wherein the user interface includes atextual input component configured to receive user input indicating thequestion; responsive to receipt of user input by the second userindicating the question via the textual input component, identify one ormore keywords from the user input; determine a fourth tag to associatewith the question from the second user based on at least one of the oneor more keywords; determine that the stored tags do not include thefourth tag, wherein the fourth tag corresponds to a new topic;responsive to the determination that the stored tags do not include thefourth tag, cause the fourth tag to be added to the stored tags;identify indications of interest or expertise for the new topic in theprior interactions by the set of users; and calculate, for theindividual users of the set of users, an expert score for the new topicbased on the identified indications of interest or expertise.
 12. Amethod of mapping expert resources within an organization or group ofusers and identifying expert resources to route questions based on themapped expert resources, the method being implemented in a computersystem having one or more physical processors programmed with computerprogram instructions that, when executed by the one or more physicalprocessors, program the computer system to perform the method, themethod comprising: accessing, by the computer system, informationindicating prior interactions with the system for each of a set ofusers, the set of users comprising at least a first user and a seconduser; identifying, by the computer system, indications of interest orexpertise for a set of topics in the prior interactions by the set ofusers, wherein topics within the set of topics correspond to stored tagsand include at least a first topic and a second topic; calculating, bythe computer system, for individual users of the set of users, an expertscore for one or more topics of the set of topics based on theidentified indications of interest or expertise; receiving, by thecomputer system, a question from the second user; determining, by thecomputer system, a set of tags from the stored tags to associate withthe question from the second user, wherein the set of tags comprise atleast a first tag and a second tag of the stored tags, wherein the firsttag corresponds to the first topic and the second tag corresponds to thesecond topic; identifying, by the computer system, based on the set oftags, one or more prior questions related to the question from thesecond user, wherein individual questions of the one or more priorquestions relate to at least one of the first tag and the second tag;determining, by the computer system, that at least one of the identifiedone or more prior questions is associated with a third tag of the storedtags; determining, by the computer system, that the set of tagsassociated with the question from the second user does not include thethird tag; causing, by the computer system, the third tag to beassociated with the question from the second user based on thedetermination that at least one of the identified one or more priorquestions is associated with the third tag and the determination thatthe set of tags associated with the question does not include the thirdtag; identifying, by the computer system, the first user as an expertuser to route the question from the second user to, wherein the firstuser is identified as an expert user based at least on an expert scoreof the first user for the third tag; and causing, by the computersystem, the question from the second user to be provided to the firstuser.
 13. The method of claim 12, the method further comprising:receiving, by the computer system, a response by the first user to thequestion from the second user; prompting, by the computer system, thesecond user for feedback related to the perceived quality of theresponse by the first user; receiving, by the computer system, feedbackresponsive to the prompt; determining, by the computer system, at leasta first topic of the question from the second user based on the firsttag associated with the question; and updating, by the computer system,the expert score of the first user for the first topic based on thefeedback.
 14. The method of claim 12, wherein the identified indicationsof interest or expertise include indications of interest and indicationsof expertise, wherein calculating the expert score of the individualusers of the set of users for the first topic of the set of topicscomprises: applying, by the computer system, a first weight to a firsttype of indication of interest related to the first topic and a secondweight to a second type of indication of interest related to the firsttopic, wherein the second weight is greater than the first weight; andapplying, by the computer system, a third weight to a first type ofindication of expertise related to the first topic and a fourth weightto a second type of indication of expertise related to the first topic,wherein the third weight and fourth weight are each greater than thesecond weight, and wherein the fourth weight is greater than the thirdweight.
 15. The method of claim 14, wherein the information indicatingprior interactions with the system comprises, for the individual usersof the set of users, a viewing history indicating one or more views ofprior questions received by the system or a search history indicatingone or more searches within the system, wherein the first type ofindication of interest comprises a view of a prior question related tothe first topic and the second type of indication of interest comprisesa search related to the first topic.
 16. The method of claim 14, whereinthe information indicating prior interactions with the system comprisesa record of contributions for the individual users of the set of users,wherein a contribution comprises a question posed to the system, aresponse submitted to the system, or feedback for a response submittedto the system, and wherein the first type of indication of expertisecomprises a question or response related to the first topic and thesecond type of indication of expertise comprises feedback for a responserelated to the first topic.
 17. The method of claim 1, the methodfurther comprising: updating, by the computer system, a map ofconnections between individual tags of the stored tags based on theassociation of the question from the second user with the third tag,wherein updating the map of connections based on the association of thequestion from the second user with the third tag comprises updating theconnection between the first tag, the second tag, and the third tag; andresponsive to receipt of a second question from a user of the set ofusers related to at least the first topic, automatically causing, by thecomputer system, the third tag to be associated with the second questionbased on the connection between the first tag and the third tag.
 18. Themethod of claim 17, wherein updating the map of connections based on theassociation of the question from the second user with the third tagcomprises: recalculating, by the computer system, a score indicating therelatedness of the third tag to at least the first tag, wherein scorecomprises a rational number or numerical value calculated based on howoften the third tag and the first tag are associated with a singlequestion.
 19. The method of claim 12, wherein the question from thesecond user relates to the first topic, and wherein causing the questionfrom the second user to be provided to the first user comprises:identifying, by the computer system, a third user from the set of usersto route the question from the second user based on the set of tags andthe expert scores of each of the set of users; determining, by thecomputer system, that one or more questions routed to the third userhave not been answered; determining, by the computer system, a number ofunanswered questions routed to the third user, the number of unansweredquestions including at least the one or more questions; determining, bythe computer system, a number of unanswered questions routed to thefirst user, wherein the number of unanswered questions routed to thethird user is greater than the number of unanswered questions routed tothe first user, and wherein an expert score of the third user for thefirst topic is greater than an expert score of the first user for thefirst topic; and causing, by the computer system, the question from thesecond user to be provided to the first user based on a determinationthat the number of unanswered questions routed to the third user isgreater than the number of unanswered questions routed to the firstuser.
 20. The method of claim 12, wherein the question from the seconduser relates to a first topic, and wherein causing the question from thesecond user to be provided to the first user comprises: identifying, bythe computer system, a third user from the set of users to route thequestion from the second user based on the set of tags and the expertscores of the individual users of the set of users, wherein an expertscore of the third user for the first topic is greater than an expertscore of the first user for the first topic; determining, by thecomputer system, a language of the question from the second user;obtaining, by the computer system, an indication of a languageproficiency of the third user; and causing, by the computer system, thequestion from the second user to be provided to the first user based ona determination that the third user is not suitable to provide asolution to the question based on the language of the question and thelanguage proficiency of the third user.
 21. The method of claim 12, themethod further comprising: crediting, by the computer system, a firstgame account of the second user a first number of points based on thereceipt of the question from the second user; receiving, by the computersystem, a response by the first user to the question from the seconduser; crediting, by the computer system, a second game account of thefirst user a second number of points based on the receipt of theresponse to the question, wherein the second number of points is greaterthan the first number of points; determining, by the computer system,that the total number of points in the second game account exceeds athird number of points, wherein the third number of points comprises apredefined threshold number of points to level up; and causing, by thecomputer system, a notification to be provided to the first user basedon the determination that the total number of points in the second gameaccount exceeds the third number of points, wherein the notificationindicates that the first user has leveled up.
 22. The method of claim12, the method further comprising: generating, by the computer system, auser interface configured to receive the question from the second user,wherein the user interface includes a textual input component configuredto receive user input indicating with the question; receiving, by thecomputer system, user input of the second user indicating the questionvia the textual input component; identifying, by the computer system,one or more keywords from the user input; determining, by the computersystem, a fourth tag to associate with the question from the second userbased on at least one of the one or more keywords; determining, by thecomputer system, that the stored tags do not include the fourth tag,wherein the fourth tag corresponds to a new topic; responsive to thedetermination that the stored tags do not include the fourth tag,causing, by the computer system, the fourth tag to be added to thestored tags; identifying, by the computer system, indications ofinterest or expertise for the new topic in the prior interactions by theset of users; and calculating, by the computer system, for theindividual users of the set of users, an expert score for the new topicbased on the identified indications of interest or expertise for the newtopic.